package ligueBaseball;

import java.sql.*;

/**
 * Gestion des transactions d'interrogation dans la bd de la Ligue de Baseball
 */
public class GestionInterrogation {

    private PreparedStatement stmtAfficherJoueursEquipe;//
    private PreparedStatement stmtAfficherTousJoueursEquipe;//
    private Connexion cx;

    /**
     * Creation d'une instance
     */
    public GestionInterrogation(Connexion cx) throws SQLException {

        this.cx = cx;

        stmtAfficherJoueursEquipe = cx.getConnection().prepareStatement(
                "SELECT e.equipenom, j.*" +
                "FROM joueur j, fait_partie f, equipe e " +
                "WHERE j.joueurid = f.joueurid AND f.equipeid=e.equipeid AND e.equipenom = ?" +
                "ORDER BY e.equipenom");

        stmtAfficherTousJoueursEquipe = cx.getConnection().prepareStatement(
                "SELECT e.equipenom, j.*" +
                "FROM joueur j, fait_partie f, equipe e " +
                "WHERE (j.joueurid = f.joueurid) AND " +
                "(f.equipeid=e.equipeid)" +
                "ORDER BY e.equipenom");
    
    }

    /**
     * Affiche les joueurs d'une equipe donnée
     */
    public void afficherJoueursEquipe(String nomEquipe) throws SQLException {

        if (nomEquipe != null) {
            afficherJoueurs(nomEquipe);
        } else if (nomEquipe == null) {
            afficherTousLesJoueurs();
        }
        cx.commit();
    }

    private void afficherJoueurs(String nomEquipe) throws SQLException {
        stmtAfficherJoueursEquipe.setString(1, nomEquipe);
        ResultSet rset = stmtAfficherJoueursEquipe.executeQuery();

        System.out.println(" equipenom  nom  prenom ");
        while (rset.next()) {
            System.out.println(rset.getString(1) + " " + rset.getString(3) + " " + rset.getString(4));
        }
    }

    private void afficherTousLesJoueurs() throws SQLException {
        ResultSet rset = stmtAfficherTousJoueursEquipe.executeQuery();

        System.out.println(" equipenom  nom  prenom ");
        while (rset.next()) {
            System.out.println(rset.getString(1) + " " + rset.getString(3) + " " + rset.getString(4));
        }
    }
}
